package cn.yuanqiao.archive.management.mapper;

import cn.yuanqiao.archive.management.domain.YqPgg;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 盘规格Mapper接口
 * 
 * @author sy
 * @date 2023-07-10
 */
public interface YqPggMapper 
{
    /**
     * 查询盘规格
     * 
     * @param yqPgg 盘规格主键
     * @return 盘规格
     */
    public YqPgg selectYqPggByPggId(YqPgg yqPgg);

    /**
     * 查询盘规格列表
     * 
     * @param yqPgg 盘规格
     * @return 盘规格集合
     */
    public List<YqPgg> selectYqPggList(YqPgg yqPgg);

    /**
     * 新增盘规格
     * 
     * @param yqPgg 盘规格
     * @return 结果
     */
    public int insertYqPgg(YqPgg yqPgg);

    /**
     * 修改盘规格
     * 
     * @param yqPgg 盘规格
     * @return 结果
     */
    public int updateYqPgg(YqPgg yqPgg);

    /**
     * 删除盘规格
     * 
     * @param yqPgg 盘规格主键
     * @return 结果
     */
    public int deleteYqPggByPggId(YqPgg yqPgg);

    /**
     * 删除盘规格及组盘规则、组盘记录、组盘明细，根据盘规格ID
     *
     * @param pggId 盘规格主键
     * @return 结果
     */
    public int deleteYqPgg(@Param("pggId") Long pggId, @Param("zpgzId") Long zpgzId, @Param("pggTable") String pggTable, @Param("zpgzTable") String zpgzTable, @Param("zpjlTable") String zpjlTable, @Param("zpmxTable") String zpmxTable);

    /**
     * 批量删除盘规格
     * 
     * @param pggIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteYqPggByPggIds(Long[] pggIds);

    /**
     * 盘规格判重（根据名称是否相同）
     *
     * @param yqPgg 盘规格
     * @return 结果
     */
    public int isOnly(YqPgg yqPgg);

    public int updateYqPggComplete(YqPgg yqPgg);
}
